#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

typedef unsigned long long ULL;  // 自然溢出用无符号长整型
const ULL BASE = 13331;          // 基数（常用 131/13331）

// 计算字符串的哈希值（自然溢出法）
ULL get_hash(const string &s) {
    ULL hash = 0;
    for (char c : s) {
        hash = hash * BASE + c;  // 递推计算哈希值
    }
    return hash;
}

int main() {
    int n;
    cin >> n;
    unordered_set<ULL> hash_set;  // 存储哈希值去重

    for (int i = 0; i < n; ++i) {
        string s;
        cin >> s;
        hash_set.insert(get_hash(s));  // 插入哈希值
    }

    cout << hash_set.size() << endl;  // 输出不同字符串数量
    return 0;
}
